In modern electronic engineering practice, new functional circuitry is designed by preparing a circuit description in computer readable format. For maximum efficiency, even the most detailed circuits are prepared as a description of desired function rather than as a description of a precise hardware implementation. EDA (electronic design automation) software processes the functional circuit description to eventually produce an exact and specific implementation for a chosen target hardware platform.
A synthesizer component of EDA software plays a major role in the movement from functional to hardware-specific circuit design. Synthesizer software, generally executed on a general purpose computing platform, constantly makes choices and trade-offs from among the myriad of possible combinations of abstract synthesis or concrete hardware elements that could effect the functional design. The choices and trade-offs are conditioned by synthesizer design and control information that may be dynamically evaluated. Improvements in the dynamic evaluation can result in better target hardware implementations.